Date.prototype.format = function (fmt) {
    const o = {
        "M+": this.getMonth() + 1, // 月份 (1-12)
        "d+": this.getDate(),      // 日 (1-31)
        "H+": this.getHours(),     // 小时 (0-23)
        "m+": this.getMinutes(),   // 分 (0-59)
        "s+": this.getSeconds(),   // 秒 (0-59)
        "q+": Math.floor((this.getMonth() + 3) / 3), // 季度 (1-4)
        "S": this.getMilliseconds() // 毫秒 (0-999)
    };

    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }

    for (let k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }

    return fmt;
};
export default {
    isObject: (value) => {
        return Object.prototype.toString.call(value) === '[object Object]'
    },
    flattenArray: function(arr, result = []){
        // 处理边界条件
        if (!Array.isArray(arr)) {
            return [];
        }
        arr.forEach(item => {
            if (item.children && Array.isArray(item.children) && item.children.length > 0) {
                // 递归处理子数组并将结果合并到 result 中
                result.push(...this.flattenArray(item.children));
            }
            result.push(item);
        });
        return result;
    }
}